﻿using System;
using System.Collections.Generic;
using System.Text;
using Manager.App_Code.IDAL;
using System.Data;
using Manager.App_Code.DTO;

namespace Manager.App_Code.DAL
{
    class ChiTietPhieuDatDAL:StandardConnectDB, IChiTietPhieuDat
    {

        public List<DTO.ChiTietPhieuDatPhongDTO> GetListPhieuDat()
        {
            throw new NotImplementedException();
        }



        public bool InsertPhieuDat(DTO.ChiTietPhieuDatPhongDTO chitietphieudat)
        {
            Dictionary<string, object> paramlist = new Dictionary<string, object>();
            paramlist.Add("@MaPhieuDat", chitietphieudat.MaPhieuDat.MaPhieuDat);
            paramlist.Add("@MaLoaiPhong", chitietphieudat.MaLoaiPhong.MaLoaiPhong);
            paramlist.Add("@SoLuong", chitietphieudat.SoLuong);
            //paramlist.Add("@MaPhong", chitietphieudat.MaPhong.MaPhong);

            return this.ExecuteUpdate("SP_ChiTietPhieuDatPhong_Insert", paramlist);
           
        }

        public bool UpdatePhieuDat(DTO.ChiTietPhieuDatPhongDTO chitietphieudat)
        {
            throw new NotImplementedException();
        }

        public bool DeletePhieuDat(DTO.ChiTietPhieuDatPhongDTO chitietphieudat)
        {
            throw new NotImplementedException();
        }

        public DTO.ChiTietPhieuDatPhongDTO ConvertObjectDataRowToChiTietPhieuDatPhongDTO(System.Data.DataRow dr)
        {
            if (dr != null)
            {
                ChiTietPhieuDatPhongDTO chitietphieudto = new ChiTietPhieuDatPhongDTO();
                chitietphieudto.SoTT = long.Parse(dr["SoTT"].ToString());
              IPhieuDatPhong iphieudat = new PhieuDatPhongDAL();
              chitietphieudto.MaPhieuDat = iphieudat.GetPhieuDangKyPhongByID(dr["MaPhieuDat"].ToString());

              chitietphieudto.SoLuong = int.Parse(dr["SoLuong"].ToString());

                ILoaiPhong iloaiphong =new LoaiPhongDAL();
                chitietphieudto.MaLoaiPhong = iloaiphong.GetLoaiPhongByID(dr["MaLoaiPhong"].ToString());

                return chitietphieudto;
            }
            return null;
             
        }


        public int GetMaxMaChiTietPhieu()
        {
            DataTable dt = this.DTExecuteSelect("SELECT MAX(SoTT) AS MaxMaPhieu FROM dbo.ChiTietPhieuDatPhong");
            string a = dt.Rows[0]["MaxMaPhieu"].ToString();
            if (a != "")
                return int.Parse(a);
            return 0;
        }


        public ChiTietPhieuDatPhongDTO GetChiTietPhieuDatByID(long MaChiTietPhieu)
        {
            ChiTietPhieuDatPhongDTO chitietphieudat = new ChiTietPhieuDatPhongDTO();

            Dictionary<string, object> paramlist = new Dictionary<string, object>();

            paramlist.Add("@SoTT", MaChiTietPhieu);

            DataTable dt = this.DTExecuteSelect("SP_ChiTietPhieuDatPhong_GetByID", paramlist);

            chitietphieudat = ConvertObjectDataRowToChiTietPhieuDatPhongDTO(dt.Rows[0]);

            return chitietphieudat;
            
        }
    }
}
